sigmoid2(x) = (1.72 * tanh((x - 18) / 3.28)) + 3.5
t = 0.38 (slider from 0 to 1, step 0.001)
a = 4.375 (slider from 0 to 5, step 0.001)
b = 0.8 (slider from -5 to 5)
c = 16.8 (slider from 0 to 40)
d = 2.88 (slider from 0 to 5, step 0.01)
sigmoid1(x) = a / (1 + b^(x - c)) + d
trinhøjde = 0.185 (slider from 0 to 0.5, step 0.001)
Ry(x) = (sigmoid1(x) * (1 - t)) + (t * sigmoid2(x))
trinvinkel = 0.12217304763960307 rad (slider from 0 to 45°, step 0.017453292519943295)
Rindre = 0.32 (slider from 0 to 5, step 0.02)
Ax(j) = (Rindre * cos((j * trinvinkel)))
Ay(j) = (Rindre * sin((j * trinvinkel)))
Az(j) = (j * trinhøjde)
By(j) = (Ry((j * trinhøjde)) * sin((j * trinvinkel)))
Bx(j) = (Ry((j * trinhøjde)) * cos((j * trinvinkel)))
Bz: Az(j)
Cx(j) = (Ry((j * trinhøjde)) * cos(((j + 1) * trinvinkel)))
Cy(j) = (Ry((j * trinhøjde)) * sin(((j + 1) * trinvinkel)))
Cz: Az(j)
Dx(j) = (Rindre * cos(((j + 1) * trinvinkel)))
Dy(j) = (Rindre * sin(((j + 1) * trinvinkel)))
Dz: Az(j)
j = 90 (slider from 0 to 140, step 1)
trinj, f, g, h, i = Polygon((Ax(j), Ay(j), Az(j)), (Bx(j), By(j), Bz(j)), (Cx(j), Cy(j), Cz(j)), (Dx(j), Dy(j), Dz(j)))
Hzoom = 9 (slider from -20 to 20, step 0.01)
Vzoom = 13.73 (slider from 0.5 to 40, step 0.01)
q1, k, l, m, n = Polygon((Dx(0), Dy(0), Dz(0)), (Cx(0), Cy(0), Cz(0)), (Bx(1), By(1), Bz(1)), (Ax(1), Ay(1), Az(1)))
fodpop = Sequence(Polygon[(Dx(j), Dy(j), Dz(j)), (Cx(j), Cy(j), Cz(j)), (Bx(1 + j), By(j + 1), Bz(j + 1)), (Ax(j + 1), Ay(j + 1), Az(j + 1))], j, 0, 139, 1)
gelænderhøjde = 1.36 (slider from 0.25 to 2, step 0.01)
p = Segment((Bx(j), By(j), Bz(j)), (Bx(j), By(j), Bz(j) + gelænderhøjde))
trappeop = Sequence(Polygon[(Ax(j), Ay(j), Az(j)), (Bx(j), By(j), Bz(j)), (Cx(j), Cy(j), Cz(j)), (Dx(j), Dy(j), Dz(j))], j, 0, 140, 1)
trappened = Sequence(Polygon[((-Ax(j)), (-Ay(j)), Az(j)), ((-Bx(j)), (-By(j)), Bz(j)), ((-Cx(j)), (-Cy(j)), Cz(j)), ((-Dx(j)), (-Dy(j)), Dz(j))], j, 0, 140, 1)
fodpned = Sequence(Polygon[((-Dx(j)), (-Dy(j)), Dz(j)), ((-Cx(j)), (-Cy(j)), Cz(j)), ((-Bx(1 + j)), (-By(j + 1)), Bz(j + 1)), ((-Ax(j + 1)), (-Ay(j + 1)), Az(j + 1))], j, 0, 139, 1)
balustreop = Sequence(Segment[(Bx(j), By(j), Bz(j)), (Bx(j), By(j), Bz(j) + gelænderhøjde)], j, 0, 139)
VPOV = 12.7 (slider from -2 to 40, step 0.01)
e: ((a * f) * l)
gelænderop = CurveCartesian((Ry(t) * cos((trinvinkel * t / trinhøjde))), (Ry(t) * sin((trinvinkel * t / trinhøjde))), t + gelænderhøjde, t, 0, (trinhøjde * 140))
kontur1 = CurveCartesian(Ry(t), 0, t, t, 0, 50)
kontur2 = CurveCartesian((-Ry(t)), 0, t, t, 0, 50)
trin, q, r, s, f_1 = Polygon((Ax(j), Ay(j), Az(j)), (Bx(j), By(j), Bz(j)), (Cx(j), Cy(j), Cz(j)), (Dx(j), Dy(j), Dz(j)))